package Demo06;

import javax.print.DocFlavor;

/*
==是进行对象的地址比较，
如果要比较字符串内容，可以使用两个方法；
public boolean equals(Object obj)；
参数可以是任何对象，只有参数是一个字符串并且内容相同的返回true；否则返回false。
注意；
1，任何对象都可以用Object进行接收；
2，equals方法具有对称性，也就是a.equals(b)和b.equals(a)的效果一样；
3，如果比较双方一个常量一个变量，推荐把常量字符串写在前面；
推荐，"abc".equals（str）
不推荐，str.equals（"abc"）

public boolean equalsIgnoreCase(String str) -->忽略大小写，进行内容比较；
 */
public class Demo03StringEquals {
    public static void main(String[] args) {
        String str1="hello";
        String str2="hello";
        char[] charArray={'h','e','l','l','o'};
        String str3=new String(charArray);

        System.out.println(str1.equals(str2)); //true
        System.out.println(str1.equals(str3)); //true
        System.out.println(str2.equals(str3)); //true
        //字符串双引号.就能点出一个方法；
        System.out.println("hello".equals(str1)); //true

        String str4="hello";
        System.out.println(str1.equals(str4)); //true

        String str5="Heelo";
        System.out.println(str1.equals(str5)); //false;

        System.out.println("============");
        //这没毛病；
        String str6="abc";
        System.out.println("abc".equals(str6)); //true
        System.out.println(str6.equals("abc")); //true

        //毛病来了；
        String str7=null;//所有不引用类型，都可以放一个null值 ；代表没地址
        System.out.println("abc".equals(str7)); //false
//        System.out.println(str7.equals("abc"));//抱错；空指针异常--NullPointerException

        System.out.println("============");
        String strA="Java";
        String strB="java";
        System.out.println(strA.equals(strB));//false
        System.out.println(strA.equalsIgnoreCase(strB));//true

        //注意；只有英文字母区分大小写，其他不区分；
        System.out.println("abc一123".equalsIgnoreCase("abc壹123")); //false
    }
}
